conf = require("../config")
if not conf.everforest.enabled then return {} end

-- return {
--   "neanias/everforest-nvim",
--   config = function ()
--     require("everforest").setup({
--       ---Controls the "hardness" of the background. Options are "soft", "medium" or "hard".
--       ---Default is "medium".
--       background = "medium",
--       ---How much of the background should be transparent. 2 will have more UI
--       ---components be transparent (e.g. status line background)
--       transparent_background_level = 2,
--       ---Whether italics should be used for keywords and more.
--       italics = true,
--       ---Disable italic fonts for comments. Comments are in italics by default, set
--       ---this to `true` to make them _not_ italic!
--       disable_italic_comments = false,
--       ---By default, the colour of the sign column background is the same as the as normal text
--       ---background, but you can use a grey background by setting this to `"grey"`.
--       sign_column_background = "none",
--       ---The contrast of line numbers, indent lines, etc. Options are `"high"` or
--       ---`"low"` (default).
--       ui_contrast = "low",
--       ---Dim inactive windows. Only works in Neovim. Can look a bit weird with Telescope.
--       ---
--       ---When this option is used in conjunction with show_eob set to `false`, the
--       ---end of the buffer will only be hidden inside the active window. Inside
--       ---inactive windows, the end of buffer filler characters will be visible in
--       ---dimmed symbols. This is due to the way Vim and Neovim handle `EndOfBuffer`.
--       dim_inactive_windows = false,
--       ---Some plugins support highlighting error/warning/info/hint texts, by
--       ---default these texts are only underlined, but you can use this option to
--       ---also highlight the background of them.
--       diagnostic_text_highlight = false,
--       ---Which colour the diagnostic text should be. Options are `"grey"` or `"coloured"` (default)
--       diagnostic_virtual_text = "coloured",
--       ---Some plugins support highlighting error/warning/info/hint lines, but this
--       ---feature is disabled by default in this colour scheme.
--       diagnostic_line_highlight = true,
--       ---By default, this color scheme won't colour the foreground of |spell|, instead
--       ---colored under curls will be used. If you also want to colour the foreground,
--       ---set this option to `true`.
--       spell_foreground = false,
--       ---Whether to show the EndOfBuffer highlight.
--       show_eob = true,
--       ---Style used to make floating windows stand out from other windows. `"bright"`
--       ---makes the background of these windows lighter than |hl-Normal|, whereas
--       ---`"dim"` makes it darker.
--       ---
--       ---Floating windows include for instance diagnostic pop-ups, scrollable
--       ---documentation windows from completion engines, overlay windows from
--       ---installers, etc.
--       ---
--       ---NB: This is only significant for dark backgrounds as the light palettes
--       ---have the same colour for both values in the switch.
--       float_style = "bright",
--       ---You can override specific highlights to use other groups or a hex colour.
--       ---This function will be called with the highlights and colour palette tables.
--       ---@param highlight_groups Highlights
--       ---@param palette Palette
--       on_highlights = function(hl, palette)
--         hl.NormalFloat = {bg = palette.none}
--         hl.FloatBorder = {bg = palette.none}
--         hl.Pmenu       = {bg = palette.none}
--       end,
--       ---You can override colours in the palette to use different hex colours.
--       ---This function will be called once the base and background colours have
--       ---been mixed on the palette.
--       ---@param palette Palette
--       colours_override = function(palette) end,
--     })
--   end,
-- }

-- everforest for vim
return {
  "sainnhe/everforest",
  lazy = false,
  priority = 1000,
  config = function ()
    local background = 'medium'
    vim.g.everforest_background = background
    -- vim.g.everforest_transparent_background = 2
    vim.g.everforest_enable_italic = 1

    -- 自定义高亮配置
    local function everforest_custom()
      -- Define a custom highlight group
      if vim.g.everforest_transparent_background == 2 then
        vim.api.nvim_set_hl(0, 'NormalFloat', { bg = "none" })
        vim.api.nvim_set_hl(0, 'FloatBorder', { bg = "none" })
        vim.api.nvim_set_hl(0, 'Pmenu', { bg = "none" })
      end
    end

    vim.api.nvim_create_autocmd("ColorScheme", {
      pattern = "everforest",
      callback = everforest_custom
    })
  end
}
